import {getOrderList} from '../../service/order'
import {orderStatus} from '../../utils/data'

Page({

    /**
     * 页面的初始数据
     */
    data: {
        orderStatus,
        orders: [],
        status: 1,
        page: 1,
        isLoading: false,
        isLast: false,
        currentCommentOrder: {}
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        this.getData()
    },

    /**
     * 获取数据的方法
     */
    getData() {
        this.setData({isLoading: true})

        const {page, status} = this.data
        // 准备查询参数
        const data = {
            page,
            status,
            include: 'orderDetails.goods',
        }
        getOrderList(data).then(res => {
            this.setData({isLoading: false})

            this.setData({
                orders: [...this.data.orders, ...res.data] // 将新的数据, 追加到旧的数据列表里面
            })

            // 判断是否是最后一页
            if(this.data.page == res.meta.pagination.total_pages) {
                this.setData({
                    isLast: true
                })
            }
        })
    },

    /**
     * tab标签点击事件
     */
    onClick(event) {
        const {index} = event.detail

        this.setData({status: index + 1})

        // 标签页切换的时候, 重置数据
        this.setData({
            isLast: false,
            page: 1,
            orders: []
        })
        this.getData()
    },

    /**
     * 跳转到订单详情
     */
    toOrderInfo(event) {
        const id = event.currentTarget.id
        wx.navigateTo({
          url: '/pages/order_info/order_info?order_id=' + id,
        })
    },

    /**
     * 触底加载更多
     */
    onReachBottom() {
        if(this.data.isLast) return

        this.setData({
            page: this.data.page + 1
        })
        this.getData()
    },

    /**
     * 确认收货
     */
    confirmOrder(event) {
        // 1. 弹窗确认是否 确认收货

        // 2. 获取到订单ID
        const id = event.currentTarget.id

        // 3. 请求API, 确认收货

        // 4. 弹窗提醒确认成功

        // 5. 将已确认收货的这条数据移除
    },

    /**
     * 打开订单评价窗口
     */
    openCommentOrder(event) {
        console.log(event)
        // 1. 获取订单ID
        const id = event.currentTarget.id

        // 2. 让弹出层显示

        // 3. 获取当前操作的订单数据, 后面执行评价的时候会用到
        // 主要是执行评价的时候, 需要用到 goods_id
        const order = event.currentTarget.dataset.order

        // 4. 缓存订单数据
        this.setData({
            currentCommentOrder: order
        })
    },

    /**
     * 执行订单评价
     */
    doCommentOrder(event) {
        // 1. 准备提交的部分数据
        let data = {
            content: this.data.content,
            rate: this.data.rate,
            star: this.data.rate
        }

        // 2. 循环订单细节, 追加商品ID, 发送API请求, 执行评论
        this.data.currentCommentOrder.orderDetails.data.forEach(item => {
            // 追加商品ID
            data.goods_id = item.goods_id

            // 发送API, 执行评论

            // 弹窗提醒, 评论完成, 关闭评论表单

            // TODO 改变数据状态

        })

    }
})